In computer systems, particularly small or personal computer systems, peripheral devices make up a large part of the cost of the system. Where possible, it is desirable to share peripheral devices between several computer systems. When sharing a peripheral device, however, each time the device is switched from one system to another, it must be placed into a known state, preferably the same state it had when last used by this computer system.
In small computer systems, especially personal computer systems, the hardware and operating system software may lack the sophistication necessary to allow such sharing. Therefore, if peripherals in such systems are to be shared, the user of the system must manually re-initialize the peripheral device each time the computer systems are switched, in order to bring the device to a known state. This is very time consuming, and very difficult if the computer systems that share the device are not in close proximity. For remotely connected systems, determining if the peripheral device is currently in use is a major problem.
For some peripheral devices, such as printers, prior art manual or automatic switches may be used to switch the electrical connections from one computer system to another. Once switched to a particular computer, the interface to the other computers is set busy until the connected computer has not used the peripheral for a period of time, then the busy indication is removed and any of the computers can reacquire a connection. Each time the interface to the peripheral is switched, however, the computer now having control of the peripheral must re-initialize the peripheral to reestablish the state of the peripheral device. In the case of printers, this re-initialization involves restoring the printing resolution, page orientation (landscape or portrait), margins, fonts selected, page size, and other parameters. If the printer is being used by a word processing system, the user may not be aware of these parameters, and thus may be unable to re-initialize the printer to the state it had before being switched.
There is a need in the art then for a switch that allows a peripheral device to be shared between two or more computer systems, while saving the state of the peripheral device for each of the sharing computer systems. Another need is for such a switch that automatically restores the state of the peripheral each time the interface is switched, thus providing transparent switching. Still another need is for such a switch that will alert a computer system wishing to control a peripheral device that the device is currently being used by another system, thus allowing sharing of remotely connected computer systems. The present invention meets these needs.